Como programar un microcontrolador Atmega168pa usando un programador USBasp y avrdude.
Para instalar la suite de AVRdude lo hacemos instalando los siguientes paquetes usando el siguiente comando (en Debian):
sudo apt-get install avrdude avrdude-doc binutils-avr avr-libc gcc-avr gdb-avr
Los pasos para programar el microcontrolador son los siguientes:
Para compilar nuestro código en C usaremos el siguiente comando:
avr-gcc -mmcu=atmega168pa -Os -o led_blink.elf led_blink.c
Para generar el .hex usamos el siguiente comando:
avr-objcopy -O ihex -R .eeprom led_blink.elf led_blink.hex
Para flashear el microcontrolador usamos el siguiente comando:
avrdude -c usbasp -p m168pa -U flash:w:led_blink.hex:i
Las conexiones del programador al microcontrolador serán las siguientes (podemos usar el conector de 10 pines o el de 6 pines):
Para comprobar que las conexiones están bien realizadas podemos ejecutar el siguiente comando:
avrdude -c usbasp -p m168pa -v
Deberíamos de obtener una salida como la siguiente:
Si tenemos un problema con la frecuencia de oscilación (si los delay tardan mas de lo que hemos programado), podemos intentar configurar los fuses del microcontrolador:
AVR | microcontrolador | atmega